home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 176-200 / 190 / nethack / een.zoo / timeout.c < prev    next >
C/C++ Source or Header  |  1988-07-01  |  2KB  |  87 lines

  1. /*    SCCS Id: @(#)timeout.c    2.0    87/09/18
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3.  
  4. #include    "hack.h"
  5.  
  6. timeout(){
  7. register struct prop *upp;
  8. #ifdef KAA
  9. register struct monst *mtmp;
  10. #endif
  11.     if(Stoned) stoned_dialogue();
  12. #ifdef KAA
  13.     if(u.mtimedone) if (!--u.mtimedone) rehumanize();
  14. # ifdef KOPS
  15.     if(u.ucreamed > 0) u.ucreamed--;
  16. # endif
  17. #endif
  18.     for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++)
  19.     if((upp->p_flgs & TIMEOUT) && !(--upp->p_flgs & TIMEOUT)) {
  20.     if(upp->p_tofn) (*upp->p_tofn)();
  21.     else switch(upp - u.uprops){
  22.     case STONED:
  23.         killer = "cockatrice";
  24.         done("died");
  25.         break;
  26.     case SICK:
  27.         pline("You die because of food poisoning.");
  28.         killer = u.usick_cause;
  29.         done("died");
  30.         break;
  31.     case FAST:
  32.         pline("You feel yourself slowing down.");
  33.         break;
  34.     case CONFUSION:
  35.         if (Hallucination) pline("You feel less trippy now.");
  36.         else
  37.         pline("You feel less confused now.");
  38.         break;
  39.     case BLINDED:
  40.         if (Hallucination) pline("Oh like wow! What a rush.");
  41.         else       pline("You can see again.");
  42.         setsee();
  43.         break;
  44.     case INVIS:
  45.         on_scr(u.ux,u.uy);
  46.         if (!See_invisible)
  47.         pline("You are no longer invisible.");
  48.         break;
  49.     case WOUNDED_LEGS:
  50.         heal_legs();
  51.         break;
  52. #ifdef KAA
  53.     case HALLUCINATION:
  54.         pline("Everything looks SO boring now.");
  55.         setsee();
  56.         for (mtmp=fmon; mtmp; mtmp=mtmp->nmon)
  57.         if ((Blind && Telepat) || canseemon(mtmp))
  58.             atl(mtmp->mx, mtmp->my, (!mtmp->mappearance ||
  59.             Protection_from_shape_changers)
  60.             ? mtmp->data->mlet : mtmp->mappearance);
  61.         break;
  62. #endif
  63.     }
  64.     }
  65. }
  66.  
  67. /* He is being petrified - dialogue by inmet!tower */
  68. char *stoned_texts[] = {
  69.     "You are slowing down.",        /* 5 */
  70.     "Your limbs are stiffening.",        /* 4 */
  71.     "Your limbs have turned to stone.",    /* 3 */
  72.     "You have turned to stone.",        /* 2 */
  73.     "You are a statue."            /* 1 */
  74. };
  75.  
  76. stoned_dialogue()
  77. {
  78.     register long i = (Stoned & TIMEOUT);
  79.  
  80.     if(i > 0 && i <= SIZE(stoned_texts))
  81.     pline(stoned_texts[SIZE(stoned_texts) - i]);
  82.     if(i == 5)
  83.     Fast = 0;
  84.     if(i == 3)
  85.     nomul(-3);
  86. }
  87.